home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hidden Truth
/
Hidden Truth.iso
/
amiga
/
classupdate
/
history.doc
< prev
next >
Wrap
Text File
|
1996-09-04
|
25KB
|
698 lines
This file hilites some of the most notable changes to the ClassAct
classes for release 2.0 and includes sections of the related autodoc
for new class tags. This is an accumlative listing.
In this release, all classes have been revised to startup with V36 of
the OS or later. A few bugs precluding use under OS 2.04 have been
corrected as well.
*************************************************************************
CLASS: bitmap.image 41.2
New image class release, written by Yvon Rozijn.
BUGS/CHANGES:
None
*************************************************************************
CLASS: getfile.gadget 41.146
New gadget class release, written by Petter Nilsen.
BUGS/CHANGES:
None
*************************************************************************
CLASS: getfont.gadget 41.23
New gadget class release, written by Petter Nilsen.
BUGS/CHANGES:
None
*************************************************************************
CLASS: getscreenmode.gadget 41.13
New gadget class release, written by Petter Nilsen.
BUGS/CHANGES:
None
*************************************************************************
CLASS: arexx.class 41.69
BUGS/CHANGES:
Corrected possible enforcer hits and potential lockup when using
Voodoo's "get new mail" or running a copy of Voodoo twice via an
Aweb mail plug in. Generally, the arexx class should be a little
more stable/durable now.
*************************************************************************
CLASS: penmap.image 41.2
BUGS/CHANGES:
Note, under AmigaOS 3.x ObtainBestPen() is used, but under AmigaOS 2.x
this function is NOT available, and you can supply your own mapping
via IA_Pens, otherwise no pen remapping occurs and chunky images are
converted to planer verbatim, and may look rather sad depending on the
palette. If anyone has a ObtainBestPen() compatible or simular function
with sources they care to contribute, it can easily be added to the
penmap image class. (41.1)
Accidently passed a ULONG for a UWORD for the backgroud pen, odd
that with prototypes SAS/C didn't even complain. Incidently the
value assigned to this ULONG was casted as a UWORD :) (41.2)
NEW TAGS:
PENMAP_Precision
Set the precision for ObtainBestPen() when penmap is used
under AmigaOS 3.0 or later. See the ObtainBestPen autodoc
for more details.
Defaults to PRECISION_IMAGE.
Applicability is (OM_NEW, OM_SET)
PENMAP_ColorMap (struct ColorMap *)
This tag is an alternate way to pass a colormap
for use in ObtainBestPen(). If this tag is not provided
then the colormap attached to the screen's viewport
will be used, in that case PENMAP_Screen MUST be passed
to penmap. If under AmigaOS 2.x, no pen remapping occurs
unless default pens are passed via IA_Pens.
Defaults to NULL.
Applicability is (OM_NEW, OM_SET)
PENMAP_MaskBlit (BOOL)
Blits penmap on to display using a mask plane, this
is very useful and encouraged when using penmap for
program logos for your about window, etc. Using the mask
technique, the preferenced window backfill pattern
will show thru around or potentially in your image.
If this effect is not desired, you should not use this
tag, and frame your images in a bevel.
Defaults to FALSE.
Applicability is (OM_NEW, OM_SET)
*************************************************************************
CLASS: bevel.image 41.24
BUGS/CHANGES:
Now implements nearly all beveling preference options, including bevel
style, default group label positioning, 3D group label shadow, etc.
Fixed intermediate release bug causing omission of disable pattern
rendering for draw states of IDS_DISABLED and IDS_SELECTDISABLED.
Fixed enforcer hits caused by rendering the new XEN bevels with out DrawInfo.
Implemented IM_FRAMEBOX method with very limited resolution
awareness, *completly* untested at this time.
Previous intermediate release of ClassAct 2, there was a missing
ReleasePen() whene using THICK or XEN preferenced bevels. 41.23
With 41.24, bevel longer uses ObtainBestPen()/ReleasePen(), but instead
uses FindColor(). However, window class now attempts to lock the proper
XEN/Thick pens ObtainBestPen() on window open, and ReleasePen() on
window close. It is set not to alter your palette, simple lock the
right colors if they exist and bevel should find these pens unless
the palette changes such that another pen is a closer match. This
still not the idea system, but it should correct the random pen
color changing errors introduced by bevel 41.23 when it (correctly)
released the pen after it was done using it. A better system may
be devised in the future.
Under 2.04, a potential 0 dimention EraseRect() would cause a crash. Fixed.
This only occured when a Vertical or Horizontal bar bevel image was used
DIRECTLY as a layout child, but not if specified as the layout group
bevel style.
NEW TAGS:
BEVEL_ColorMap (struct ColorMap *)
Screen ViewPort ColorMap, this tag is required tag for
proper BVS_BUTTON xen shadow pen selections. Gadget or
Image classes must supply this tag to bevel image
atleast once before rendering the object in order for
proper pen selections.
Defaults to NULL.
Applicability is (OM_NEW, OM_SET)
BEVEL_Flags
Intentionally left undocumented! Used for some hidden
BVS_BUTTON xen style magic. Class authors inquire as needed.
Defaults to 0.
Applicability is (OM_NEW, OM_SET)
*************************************************************************
CLASS: integer.gadget 41.14
BUGS/CHANGES:
Implemented INTEGER_MinVisible tag, see below.
Fully supports bevel style preferences. Thin, GadTools, Thick and XEN
style is now applied to the arrow buttons.
NEW TAGS:
INTEGER_MinVisible (WORD)
Set the minimum number of characters that should be
visible for a 'GDOMAIN_MIMIMUM' domain size. This is a handy
addition present in V41.127 or later to ensure a mimimum
number characters will be visible in a integer gadget.
*************************************************************************
CLASS: palette.gadget 41.0
BUGS/CHANGES:
Now correctly renders itself with all beveling preference modes.
NEW TAGS: none
*************************************************************************
CLASS: listbrowser.gadget 41.202
BUGS/CHANGES:
Added additional methods for optimized adding and refresh of
specific nodes in a list.
Now correctly renders itself with beveling preference modes.
Handles lists with total node pixel count greater than 32768 pixels.
propgclass on which scroller.gadget prior to V42 beta can only handle
WORD variables. Because listbrowser smooth pixel scrolls, there was
a good potential to overrun the WORD ranges. Scaled values are now
used on large lists, in addition the new V42 beta scroller class
handles LONG values and is implemented independant of propgclass.
Implmented additional mode of operation, see new tags below.
Tweaked Scroller size on 640x200 screens.
Now bevels the checkbox for checkable nodes, uses a a thin beveling
style rather than the previous plain flat looking black box.
Now handles empty lists w/o enforcer hit(s).
Corrected error with LISTBROWSER_MakeVisible, if the node was
below last visible node, it scrolled the node upward above the
top visible node. The entire height of the list gadget was mistakenly
added to the scroll offset.
Title separators could be caused to not refresh, notable in AWeb. Fixed.
As a result of fixing the above bug, an extra separator was drawn on
the far right in the title. Fixed.
NEW TAGS:
LISTBROWSER_HorizSeparators (BOOL) (V41)
Renders horizontal lines below each node. This is useful if your
listbrowser is very wide, and you want to make it easier for
users to follow the rows of data.
Defaults to FALSE.
Applicability is (OM_NEW, OM_GET, OM_SET)
LISTBROWSER_CheckImage (struct Image *) (V41)
Provide a custom image for a checkbox node while that node is
in the checked state. A NULL image means that listbrowser
render some default imagery.
Defaults to NULL.
Applicability is (OM_NEW, OM_GET, OM_SET)
LISTBROWSER_UncheckedImage (struct Image *) (V41)
Provide a custom image for a checkbox node while that node is
in the unchecked state. A NULL image means that listbrowser
render some default imagery.
Defaults to NULL.
Applicability is (OM_NEW, OM_GET, OM_SET)
LISTBROWSER_TotalNodes (LONG) (V41)
Return the total number of nodes currently attached to the
listbrowser.
Applicability is (OM_GET)
*************************************************************************
CLASS: button.gadget 41.2
BUGS/CHANGES:
Nominal domain now sizes 2 pixel taller to accomodate some
buggy fonts and generally look better, as well and 6 pixels + bevel
size wider.
Tweaked minimum domain height to me 2 pixels taller.
Fixed autobuttons domain height to fontheight + 7 to match
string, and titleless dropdown chooser regardless of bevel types
thus producing a consistant mindomain size and layout regardless
of different sized frames. This likely will change in implementation,
yet reach the same desired results, when an IM_DOMAIN method
is is implemented in bevel class.
Nominal size domain is now a few pixels larger than minimum size
for GA_Image buttons.
Revised rendering routines, may be a little more tolerable of
MagicMenu's and other simular hacks, on the down side, it could
make subclassing/method overloading a bit more challanging to do.
NEW TAGS:
BUTTON_DomainString (STRPTR)
Used to specify the NULL terminated string to use as the text
to domain the gadgets minimum size. This string is NEVER
rendered on screen. This is useful when you need to create
a button with a empty ("") or NULL string, but want to enforce
minimum size in a layout group based on some initializing
string and the current preferenced font.
Defaults to NULL.
Applicability is (OM_NEW, OM_SET)
*************************************************************************
CLASS: checkbox.gadget 41.2
BUGS/CHANGES:
Eeek! Contrary to documentation, there was NO OM_UPDATE support at all.
Update tag setting and rendering support implemented, as well as
notification of selection state as per existing documentation.
NEW TAGS: none
*************************************************************************
CLASS: chooser.gadget V41.9
BUGS/CHANGES:
Now StackSwap()'s input methods when under input.device task context so
to avoid a potential stack overrun on certain systems when opening the
popup/dropdown selection window. This overrun was especially apparent
on EGS systems.
Fixed titleless dropdown domain height to fontheight + 7 to match
string, and autobuttons regardless of bevel type.
ActivateLayoutGadget() or keyboard short cuts now cause the popup menu
to open. Cursor arrow keys move the selection bar, Return selects, Escape
cancels as does the main window going inactive for any reason. Incidently
this change allows support of GA_TabCycle to open the popup as well, however
I'm not so sure this is a good thing to exploit in an application.
Recompiled with optimizer on, reduced size nearly 2k.
NEW TAGS:
CHOOSER_Offset (UWORD)
This value is added to the value sent in notifications
via the 'CHOOSER_Active' tag. Since chooser selections
begin and 0 as the first selection, and some objects
begin at 1 (such as DATEBROWSER_Month accepts 1 thru 12)
this tag is useful in chooser to datebrowser innerconnections
to map a 0-11 chooser selection to datebrowser month 1 thru 12.
Defaults to 0.
Applicability is (OM_NEW, OM_SET)
New option(s) for AllocChooserNodeAttrsA() and SetChooserNodeAttrsA();
CNA_SelImage (struct Image *)
Selected state Image to be placed to the left of the CNA_Text in
the Chooser menu. Background image pen remapping is not currently
implemented.
CNA_ReadOnly (BOOL) (41.3)
Selected popup/dropdown item under mouse is NOT rendered
as selected, by request of Yvon for AWeb's dropdown help.
It should be noted, this is potentially deceiving as the
the item can be selected, and will return a gadgetup.
Note, 41.5 on up will/should block the gadgetup.
CNA_Disabled (BOOL) (41.5)
Blocks selection of item, no gadgetup is returned. Items are
ghosted via true ghosting with the background pen, simular to
intuition menus. A future version might take a clue from
MagicMenus 2.0 and ghost/shadow using aditional pens, as it
is much easier to read the disabled selection but still is
visible different. These ghosting styles could become user
referenced at risk of becomming another MUI like prefs. ;0
CNA_Separator (BOOL) (41.7)
Makes an item a non selectable separator (~~~~~~ style) node
simular to intuition menus.
*************************************************************************
CLASS: clicktab.gadget 41.1
BUGS/CHANGES:
New render styling, thought to to be more visually pleasing by most :)
Minimized rendering and return of GADGETUP when selecting the
page that is already current.
TNA_Enabled changed to TNA_Disabled for consistancy with other tags
but is still not supported anyway, so no harm done!
Reduced click tab height for better look on 640x200 screens, and
reduced popup action from 2 pixels to 1 pixel. All in all, I'd
say its an improvement.
NEW TAGS:
New option(s) for AllocClickTabNodeAttrsA() and SetClickTabNodeAttrsA();
TNA_TextPen (WORD)
Specifies pen number to use for the label.
Defaults to pens[TEXTPEN].
*************************************************************************
CLASS: fuelgauge.gadget 41.2
BUGS/CHANGES:
Fully fills inner bevel areas for all bevel preference modes.
Added additional text rendering support, including VarArgs much like
that which is supported by button.gadget.
Rendering should no longer cause icon dragging to abort. However,
if you receive a non zero return value from SetGadgetAttrs() when
updating FUELGAUGE_Level, that indicates fuelgauge could not perform
its own safe locking update. In this case, you should NOT RefreshGList
contrary to what you might thing. However, this applicable ONLY to V41
of fuelgauge, prior versions requier RefreshGList to update visuals.
Also note, it is theoretically possible for the gauge to miss a render
update, thus it is recommended any final status strings set in a gauge
DO follow with a RefreshGList to ensure any final "resting state" of
the gadget is accuratly displayed.
Changed rendering code to make a speed advantage of using OS 3.0
specific calls such as SetABPenDrMd() when using V39 or later.
NEW TAGS:
FUELGAUGE_VarArgs (APTR)
Varargs data array to supply data for RawDoFmt() when
format specifiers are to be used in GA_Text text strings.
Defaults to NULL.
Applicability is (OM_NEW, OM_SET)
FUELGAUGE_Justification (WORD)
Justification mode of fuelgauge (GA_Text) text label.
Percentage rendering, when enabled, is always centered.
Supports:
FGJ_LEFT
FGJ_CENTER
Defaults to FGJ_LEFT.
Applicability is (OM_NEW, OM_SET)
*************************************************************************
CLASS: layout.gadget 42.30
BUGS/CHANGES:
Optimized domain, layout and render methods for greater speed.
Layout error introduced durring code optimizations introduced a small
layout spacing error between the first two objects, now fixed.
Resize no longer cancels GA_ReadOnly setting.
42.16 snuck out on May 30th 96 - dispose would have caused enforcer hits
or a crash on some layout groups (notable in AWeb prefs). It was an
intermediate bug that krept in and promptly fixed in 42.17.
42.20 will now DisposeObject all children, even if the layout
creation/taglist processing failed. In previous versions, if the
tag list processing failed, object not yet processed in the
layout tag list would not be disposed of. Thanks to Magnus
and Yvon for catching this one.
42.24 A *very* weird bug was fixed. A simple refresh window containing
string or integer (ROM strgclass based) gadgets nested two or more
layout levels deep in a page group would layer locker or guru the
machine after refresh - ONLY if the the overlapping window being close
was a shell/newcli window! This one I still don't fully understand yet
but mangaged to fix it anyhow. ;0 Thanks to Yvon for catching this one.
42.27 Significantly increased domain method via changes to LayoutLimits()
and handling of label/domain alignments. Additionally, window resizing
layout may occur faster as well as labels are nolonger re-domained
as they have already been domained and aligned at window open time.
40.30 Improved dispatching speed of OM_SET method slightly.
NEW TAGS:
LAYOUT_Inverted (BOOL)
If set TRUE, children are added to the layout group
in reverse order, ie via AddHead() vs AddTail().
This might be especially useful for those who wish to
port the Asm programmer macros from another other GUI
system, ie, BGUI for example.
It is also handy to just flip positions of gadgets in
a layout group, ie, speedbar on left/right prefs, etc.
Note, this tag does not change the order of gadgets
already present in a group. This tag must be passed first.
Defaults to FALSE.
Applicability is (OM_NEW, OM_SET)
CHILD_ScaleHeight (UWORD)
CHILD_ScaleWidth (UWORD)
Cause the minimum domain size of an object to be
scaled to a larger value. IE, a value of 20 with
a min domain size of 50 results in a 60 pixel minimum.
That is to say;
newmin = min + ((scale * min)/100);
These tags are handy for use on listbrowser object to extend
the width or height to a more realistic size. Because this
scaling could potentially force a layout beyond the maximum
size for a screen (thus causing a potential font fallback)
you should use some commen sence as to when to apply such
a scalar, and how much is overkill.
Defaults to 0.
Applicability is (OM_NEW, OM_SET)
*************************************************************************
CLASS: radiobutton.gadget 41.1
BUGS/CHANGES:
Corrected keyboard control so selection wraps around rather than
incrementing or decrementing selection to an invalid/invisible selection.
NEW TAGS:
*************************************************************************
CLASS: speedbar.gadget 41.2
BUGS/CHANGES:
Corrected various potential bugs in SBNA_Toggle/SBNA_MXGroup handling.
Implemented SPEEDBAR_EvenSize tag.
Implemented SBNA_Disabled.
Now safty checks for empty lists, but to domain correctly your buttons
must be added to the bar before domain/layout occurs.
Fixed, or atleast improved rendering/centering of vertical orientated
bars.
Corrected rendering of SBNA_Disabled buttons.
NEW TAGS:
SPEEDBAR_EvenSize (BOOL)
Causes all buttons in the bar to size equal to the largest.
Defaults to FALSE.
Applicability is (OM_NEW, OM_SET, OM_GET)
New option(s) for AllocSpeedBarNodeAttrsA() and SetSpeedBarNodeAttrsA();
SBNA_Disabled (BOOL)
Set a button in the bar as disabled. If setting this after the bar
has been rendered, you must follow this with RefreshGList() on the
speedbar object to cause the disable rendering to occur.
Defaults to FALSE.
*************************************************************************
CLASS: string.gadget 41.2
BUGS/CHANGES:
Incorrect semaphore in dispatcher allowed potential deadlock situation.
Fixed domain height to fontheight + 7 to match autobuttons and
titleless dropdown choosers regardless of bevel types. And, caused
string gadget height to be more uniform with integer gadget height
which generally makes the GUI display look alot better, especially
for 640x200 users where the prior versions of string gadget where a
bit too tall.
Revised input handling methods some in attempt to fix a bug with
window class gadgethelp, no change. Infact, the bug could be
in strgclass itself - currently investigating that possibility.
NEW TAGS:
STRINGA_MinVisible (WORD)
Set the minimum number of characters that should be
visible for a 'GDOMAIN_MIMIMUM' domain size. Nominal
domain sizes to twice this minimum. This is a handy
addition present in V40.35 or later to ensure a mimimum
number characters will be visible in a string gadget.
*************************************************************************
CLASS: window.class 42.39
BUGS/CHANGES:
Setting WA_BusyPointer TRUE will turn off defer layout so if the app
is busy, a simple refresh window or resized window will refresh
normally while the application is theoretically busy to process
the window class input which causes the defer refresh to occur.
Setting the busy state FALSE will return defer layout to the previous
setting. In addition, GA_ReadOnly is also set/cleared on the window
layout as well, a busy window will not accept input. If this is
counter productive to you, you may override this by setting GA_ReadOnly
FALSE (on the layout). In addition, a busy window will also call
OffMenu(NOITEM) or OnMenu(NOITEM) to disable the menu bar.
It should be noted, checked menu items should be tracked/rechecked,
this change was hoped to avoid that by window class not using
ClearMenuStrip()/ResetMenuStrip() but this does not work fully either.
Window now as internal border prop scroller creation, but is undocumented
as it may be replaced with border groups to allow neat stuff like a page
flip/count gadget for word processors, bottom border text status
gadgets, as well as scrollers. Comments & testers welcome...
Potential bugged/corrupted version of 41.24 crept out in a demo. Such
a class missed window resize refresh on some simple refresh windows.
Window class now tries to obtain the best pens for XEN/Thick bevels
on window open, and releases them on window close.
Corrected enforcer hit closing windows in an intermediate V42.31
test release of the new pen allocation system.
Added WMHI_INTUITICK, it was documented but apparently wasn't
implemented. Also added WMHI_MOUSEMOVE and WMHI_MOUSEBUTTONS
as the next two WMHI_#? return values, however, for mouse move
you still need to peek the mouse position elsewhere, such as
in IntuitionBase->MouseX and MouseY. It can't be returned via
in the window class input method code. Although, window corner
relative mouse x/y tags might be a suggestion for the future.
#define WMHI_INTUITICK (14<<16) /* IDCMP intuitick */
#define WMHI_MOUSEMOVE (15<<16) /* IDCMP mouse move */
#define WMHI_MOUSEBUTTONS (16<<16) /* IDCMP mouse buttons */
Windows set busy via WA_BusyPointer still allowed gadget activation
via keyboard control. This is now corrected, and with this release
the busy handling it done via Request()/EndRequest() with a NULL
requester as recommended in the RKM.
NEW TAGS:
WINDOW_RefWindow (struct Window *) (V42.38)
Causes WINDOW_Position of CENTERSCREEN and TOPLEFT to be
relative to the window pointed to via this tag rather than
the screen. WINDOW_Position w/CENTERMOUSE is uneffected.
Tag value: (WINDOW_Dummy + 41)
(OM_NEW, OM_SET, OM_UPDATE)
NOTE: This tag has not been fully tested yet, its currently
provided for those who need/wish to try it. You know who
you are. Please report your findings to caldi@usa.nai.net
if you use it. :)
*************************************************************************